/*
 * State.h
 *
 *  Created on: 06/05/2011
 *      Author: DessaVida
 */

#ifndef STATE_H_
#define STATE_H_

#include <string>
using std::string;

template <class entity_type>
class State {
public:
	State() {}

	virtual ~State() {}

	virtual void Enter(entity_type*) = 0;

	virtual void Execute(entity_type*) = 0;

	virtual void Exit(entity_type*) = 0;

	virtual string toString() = 0;
};

#endif /* STATE_H_ */
